package com.cloud.bssp.nio.filechannel;

import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @description： channel位置
 * @author：weirx
 * @date：2021/11/3 11:16
 * @version：3.0
 */
public class ChannelPosition {

    public static void main(String[] args) throws Exception {
        // 文件内容为10个字节的helloworld
        RandomAccessFile file = new RandomAccessFile("C:\\Users\\P50\\Desktop\\text.txt", "rw");
        FileChannel channel = file.getChannel();
        // 打印位置，没有读取时是0
        System.out.println(channel.position());

        // 读取后是文件的长度
        ByteBuffer buffer = ByteBuffer.allocate(10);
        channel.read(buffer);
        System.out.println(channel.position());
//
//        // 设置位置后的长度
//        FileChannel position = channel.position(5);
//        System.out.println(position.position());

        // 设置为文件长度后读取
        FileChannel position1 = channel.position(10);
//        System.out.println(position1.read(buffer));

        buffer.flip();
        position1.write(buffer);
    }
}
